angular 2 application structure